import * as api from './../api/api';
// 1. 每一个action.type，都声明为常量
const ADD_NUM = 'ADDNUM';
const JIAN_NUM = 'JIANNUM';
const ADD_USER = 'ADDUSER'
const DELETE_USER = 'DELETEUSER'
const UPDATE_USERS = 'UPDATEUSERS'
// 2. 每一个函数，都返回一个ACTION对象，包含type, payLoad属性
export const addNum = (count) => {
  return { 'type': ADD_NUM, "payload": count }
};

export const jian = (count) => ({ type: JIAN_NUM, payload: count })


export const addUser = (obj) => ({ type: ADD_USER, payload: obj })

export const delUser = () => ({ type: DELETE_USER, })

// 更新users的action
export const updateUsers = (data) => ({ type: UPDATE_USERS, payload: data, data })

// 异步的后台数据请求：
export const fetchUser = () => {
  // 1. 在函数里面，要返回一个异步的action函数, action函数必须要注入dispatch方法
  return async (dispatch) => {
    // 2. 反转函数： 返回action函数马上立即执行action函数。
    api.getUserAll()
      .then((res) => {
        console.log(res);
        if (res.code === 0) {
          return dispatch(updateUsers(res.data))
        } else {
          return dispatch(updateUsers([]))
        }
      })
  }
}